#ifndef _CCHART3DAXIS_H_
#define _CCHART3DAXIS_H_

#include <buola/chart/caxis.h>
#include <buola/mat/cmat.h>

namespace buola { namespace chart {

class C3DAxis : public CAxis
{
public:
    enum EAxis
    {
        AXIS_X,
        AXIS_Y,
        AXIS_Z
    };
    
public:
    C3DAxis(EAxis pAxis);
    virtual ~C3DAxis();
    
public:
///////////////////////////////
//! \name getting properties
//@{
//@}

////////////////////////////
//! \name drawing process
//@{
    //!autoscales if enabled and sets limits in the context
    void CalcLimits(double pMin,double pMinPos,double pMax);
    //!draws the axis to the GC
    void Draw(CXYZChartContext &pC);
//@}

    EAxis mAxis;

    mat::CVec3d mVertices[4];
    mat::CVec3d mVector;
    double mOrigin;
};

/*namespace chart*/ } /*namespace buola*/ }

#endif
